﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Data;
using Entidades1;


namespace SisVetDAO
{
    /// <summary>
    /// clase que contiene el acceso a los datos del administrador en la base de datos
    /// </summary>
    class MySqlAdministradorDAO : IAdaministradorDAO
    {
        public string s;
        MySqlConnection conector = new MySqlConnection();
        string connectionString;


        public MySqlAdministradorDAO()
        {

        }

        public void iniciarConexion()
        {
            try
            {
                connectionString = "Server=localhost;Database=prueba;Uid=root;";
                conector.ConnectionString = connectionString;
                conector.Open();
                s = "La conexion se ha realizado con exito";

            }
            catch (Exception ex)
            {
                s = ex.Message;
            }

        }

        public void conectar()
        {
            iniciarConexion();
        }

        public void desconectar()
        {
            conector.Close();
        }

        public void setConexion(IDbConnection conexion)
        {
            conector = (MySqlConnection)conexion;
        }

        public void insertar(Administrador ad)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "insert into administrdor (idAdmin, Nombre, apellido, clave, email) Values(?idAdmin,?nombre,?apellido,?clave,email)";
            cmd.Parameters.AddWithValue("?idAdmin", ad.idAdmin);
            cmd.Parameters.AddWithValue("?nombre", ad.nombre);
            cmd.Parameters.AddWithValue("?apellido", ad.apellido);
            cmd.Parameters.AddWithValue("?clave", ad.clave);
            cmd.Parameters.AddWithValue("?email", ad.email);
            cmd.ExecuteNonQuery();
        }

        public List<Administrador> Todos()
        {
            List<Administrador> lst = new List<Administrador>();
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "Select * From administrador";
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Administrador ad = new Administrador();
                ad.idAdmin = reader["idAdmin"].ToString();
                ad.nombre = reader["nombre"].ToString();
                ad.apellido = reader["apellido"].ToString();
                ad.clave = reader["clave"].ToString();
                ad.email = reader["email"].ToString();
                lst.Add(ad);
            }
            return lst;
        }

        public void actualizar(Administrador ad)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "UPDATE administrador SET nombre=?nombre, apellido=?apellido, clave=?clave, email=?email WHERE idAdmin=?idAdmin;";
            cmd.Parameters.AddWithValue("?idAdmin", ad.idAdmin);
            cmd.Parameters.AddWithValue("?nombre", ad.nombre);
            cmd.Parameters.AddWithValue("?apellido", ad.apellido);
            cmd.Parameters.AddWithValue("?clave", ad.clave);
            cmd.Parameters.AddWithValue("?Email", ad.email);
            cmd.ExecuteNonQuery();
        }
    }
}
